Systems, methods, user interfaces and algorithms for performing database analysis and search of information involving structured and/or semi-structured data

ABSTRACT

Implementations for searching and analyzing large, object-oriented data sets in an efficient manner involving innovative user interface features and/or search algorithm functionality are disclosed. In one exemplary embodiment, a system may search for information and/or relationships based on specified search criteria and return results that may be displayed dynamically and further filtered or analyzed. Systems may involve object oriented database(s) and a software layer including a specialized user interface between the user and the database(s). The user interface may comprise various tools as well as predefined and configurable features that enable effective search of the data as well as display of search results that are configurable and readily managed to provide immediate and useful search results. The user interface may display the search results and various associated graphical representations and models, and/or provide tools enabling dynamic manipulation and display of search results or underlying object models, among other things.

INCORPORATION BY REFERENCE TO ANY PRIORITY APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/859,167, filed Dec. 29, 2017, and titled “SYSTEMS, METHODS, USERINTERFACES AND ALGORITHMS FOR PERFORMING DATABASE ANALYSIS AND SEARCH OFINFORMATION INVOLVING STRUCTURED AND/OR SEMI-STRUCTURED DATA,” whichapplication is a continuation of U.S. patent application Ser. No.15/253,676, filed Aug. 31, 2016, and titled “SYSTEMS, METHODS, USERINTERFACES AND ALGORITHMS FOR PERFORMING DATABASE ANALYSIS AND SEARCH OFINFORMATION INVOLVING STRUCTURED AND/OR SEMI-STRUCTURED DATA,” which arehereby incorporated by reference in their entireties.

Any and all applications for which a foreign or domestic priority claimis identified in the Application Data Sheet as filed with the presentapplication are hereby incorporated by reference under 35 CFR 1.57 forall purposes and for all that they contain.

BACKGROUND Technical Field

The present disclosure relates to search and analysis of large data setsof database information without knowledge and use of technical databasesearch queries and techniques. More specifically, the present disclosurerelates to searching resources and related information arranged as datastructures utilizing various user interface and search algorithmfunctionality that involve aspects of data integration, analysis, andvisualization.

Description of Related Information

Individuals or entities may need to search diverse sources and stores ofinformation regarding various criteria and related data. The specificresources and data to be searched often encompass large data sets storedin technical data structures. For example, such large data sets may bearranged in traditional SQL or relational databases that are onlyaccessible via basic user interfaces configured for constructing SQLqueries of the data. FIG. 1 illustrates an embodiment of a known SQLdatabase arrangement that may be associated with existing searchsystems. As illustrated in FIG. 1, such SQL database 100 may include adatabase server 102, memory 104, instances 106, a database or data store108, as well as the various memory models 110, process models 112, andstorage models 114 that may be involved with searching the underlyingdata. Individuals who are not technically or analytically trained, suchas those investigating large data sets of confidential transactionsdata, are often tasked with searching and analyzing data within suchdata structures. However, these individuals are typically unfamiliarwith SQL or relational database logic and the technical search queriesand techniques required to search such databases, thus need to involveadditional technical specialists to search for information desired.

SUMMARY

The systems, methods, and devices described herein each have severalaspects, no single one of which is solely responsible for its desirableattributes. Without limiting the scope of this disclosure, severalnon-limiting features will now be discussed briefly.

Systems and methods that provide search and analysis of large,object-oriented data sets in an efficient manner involving innovativeuser interface features and search algorithm functionality aredisclosed. According to one exemplary embodiment, a system herein maysearch for information and/or relationships based on specified searchcriteria and return results that may be displayed dynamically andfurther filtered or analyzed. The system involves object orienteddatabase(s) and a software layer including a specialized user interfacebetween the user and the database(s). The user interface may comprisevarious tools as well as predefined and configurable features thatenable effective search of the data as well as display of search resultsthat are configurable and readily managed to provide immediate anduseful search results. The user interface displays the search resultsand various graphical representations and models associated with thesearch results. The user interface may also provide tools enablingdynamic manipulation and display of search results and/or underlyingobject models, as well as additional functionality to further filterinitial search results.

According to present embodiments, computer systems herein may beconfigured to provide an interactive user interface and process one ormore data sets in response to inputs received via the interactive userinterface in order to search and analyze data, such as transaction data,within one or more databases. In one embodiment, a computer system isdisclosed comprising: one or more hardware computer processorsconfigured to execute software code stored in a tangible storage devicein order to cause the system to: process data involving a user interfacethat is configured to enable processing and handling of informationbetween a user and the database, the database containing organizedinformation including at least one of object oriented orrelationally-structured information associated with the transactiondata; provide interactive user interface tools in the user interfaceincluding at least one of graphical input fields or indicia that enablea user to perform at least one of predefined or customizable searches ofthe transaction data as a function of one or more search queries; andupdate the user interface responsive to the user searches, wherein theuser interface is configured to display the transaction data includingone or more representations of the organized information within the userinterface, the one or more representations of the organized informationcorresponding to parameters of the transaction data determinable via theone or more search queries. Further, in response to selection of one ormore search queries in the user interface, the software code may beexecuted to: process (e.g., search and/or categorize, etc.) theorganized information into at least one subset that meets the one ormore search queries; update or generate user interface to display the atleast one subset that meets the one or more search queries; and updateor provide the one or more representations of the organized informationto display the transaction data related to both initial and secondarysearch queries.

Advantageously, according to various embodiments, the disclosedtechniques provide for effective search of large data sets of databaseinformation, such as confidential transaction data, by individuals whoare not technically trained. An analyst or organization may be able toconduct a search as a function of particular parameters of a data itemand/or cluster of related data items, which may reduce the amount oftime and effort required to perform a search or investigation.

In order to identify relevant information from within large and diversesources of data, scalability and efficiency may be important factors insome implementations. Accordingly, various systems, user interfaces andalgorithms described herein may provide for scalable and efficientsearching of large amounts of data relating to resources and soughtinformation, for example, by using data structures and data objects. Forexample, the systems and user interfaces can search for resources and/orinformation by searching through properties of data objects as well asproperties of other types of nodes (e.g., reports, information, childobjects, parent objects, other data objects, etc.) that are linked tothe data objects. The user interfaces may be designed to display largeamounts of data in an informative way (e.g., by presenting searchresults organized according to the data objects or properties of thedata objects, in aggregate or other summary manner, or in other ways,and/or by displaying interrelated aspects of the search results indynamically related user interface panes, etc.) and to interact withusers by allowing access to and navigation of varying levels of detailwithin the same user interface.

In various embodiments, large amounts of data are automatically anddynamically created, processed, and handled interactively in response touser inputs, and the data is efficiently and compactly presented to auser by the system. Thus, in some embodiments, the user interfacesdescribed herein are more efficient as compared to previous userinterfaces which require knowledge of technical search querying, and inwhich data is not dynamically updated and compactly and efficientlypresented to the user in response to interactive user interfacefunctionality and inputs.

Further, as described herein, the system may be configured and/ordesigned to generate user interface data useable for rendering thevarious interactive user interfaces described. The user interface datamay be used by the system, and/or another computer system, device,and/or software program (for example, a browser program), to render theinteractive user interfaces. The interactive user interfaces may bedisplayed on, for example, electronic displays (including, for example,touch-enabled displays).

Additionally, it has been noted that design of computer user interfaces“that are useable and easily learned by humans is a non-trivial problemfor software developers.” (Dillon, A. (2003) User Interface Design.MacMillan Encyclopedia of Cognitive Science, Vol. 4, London: MacMillan,453-458.) The various embodiments of interactive and dynamic userinterfaces of the present disclosure are the result of significantresearch, development, improvement, iteration, and/or testing. Thisnon-trivial development has resulted in the user interfaces describedherein which may provide significant cognitive and ergonomicefficiencies and advantages over previous systems. The interactive anddynamic user interfaces include improved human-computer interactionsthat may provide reduced mental workloads, improved decision-making,reduced work stress, and/or the like, for a user. For example, userinteraction with the interactive user interfaces described herein mayprovide an optimized display of information relating to resources and/orinformation associated with the resources, and may enable a user to morequickly access, navigate, assess, and digest such information thanprevious systems.

Various embodiments of the present disclosure are inextricably tied tocomputer technology. In particular, various embodiments rely on specificdatabase functionality and data processing including relational databaselogic, detection of user inputs via graphical user interfaces,determination of updates to displayed electronic data based on thoseuser inputs, automatic processing of electronic data related toresources and information, and presentation of the updates to displayeddata relating to resources and information via interactive graphicaluser interfaces. Such features and others (e.g., searching for resourcesand information based on properties of respective types of data objectsas well as other related data objects, filtering search results usinggraphical UI functionality, etc.) are intimately tied to, and enabledby, computer technology, and would not exist except for computertechnology. For example, the interactions with displayed data describedbelow in reference to various embodiments cannot reasonably be performedby humans alone, without the computer technology upon which they areimplemented. Further, the implementation of the various embodiments ofthe present disclosure via computer technology enables many of theadvantages described herein, including more efficient interaction with,and presentation of, various types of electronic data.

In one embodiment, a system configured to access one or more electronicdata resources in response to inputs received via an interactive userinterface in order to search for information comprises one or morehardware computer processors configured to execute software code storedin a tangible storage device in order to cause the system to: receivesearch criteria for identifying information associated with one or moredatabases, the search criteria relating to the resources or theinformation, the resources and the information represented as respectivedata objects, wherein data objects can be associated with each other;automatically identify initial search results that meet the searchcriteria, wherein the identification is based on one or more of:properties of the resources, properties of the information, orproperties of other data objects associated with the resources; generatea user interface configured to display the initial search results andattributes associated with the initial search results, the attributescorresponding to the properties of the initial search results, whereinthe user interface displays the initial search results on the userinterface as well as graphical indicia and/or data related to theinitial search results or the attributes associated with the initialsearch results; and, in response to secondary searching (e.g., selectionof one or more of the graphical indicia and/or attributes in the userinterface, etc.), filter the identified resources to secondary searchresults (e.g., a subset of the initial search results, etc.) that meetthe secondary search criteria, and/or update the user interface todisplay the subset that meets the secondary search.

In some embodiments, the search results meet the search criteria or areassociated with the identified resources that meet the search criteria.The search criteria for identifying initial and secondary search resultsmay include one or more of: search criteria relating to the resources,data objects and/or information relating to same, and search criteriarelating to reports, documents, transaction information, people and/orother information or identifying data associated with same. Some of thesearch criteria provided and/or displayed may be based on the propertiesof other data objects associated with the initial resources or dataobjects searched or identified. The user interface may comprise variouspanes as set forth below by way of illustration and not limitation. Forexample, illustrative user interfaced may include a pane for displayingsearch options and/or resources to search, a pane for displaying theidentified resources and/or search results, a pane for displayinginformation associated with one or more selected resources or searchresults identified, and/or other panes for displaying manipulations ofthe search results, data objects associated with the search, and/or dataobject graphs that may be manipulated by the user. In certainembodiments, the code may be further configured to, in response toinclusion and/or exclusion of one or more attributes in the userinterface, filter the identified search results to a second set thatmeets and/or does not meet such attributes selected; update the userinterface to display the secondary set of search results; and update thegraphical indicia and/or display information to reflect the data anddata objects corresponding to the respective attribute(s) in thesecondary search results set.

Additional embodiments of the disclosure are described below inreference to the appended claims, which may serve as an additionalsummary of the disclosure.

In various embodiments, computer systems are disclosed that comprise oneor more hardware computer processors in communication with one or morenon-transitory computer readable storage devices, wherein the one ormore hardware computer processors are configured to execute theplurality of computer executable instructions in order to cause thecomputer system to perform operations comprising one or more aspects ofthe above-described embodiments (including one or more aspects of theappended claims).

In various embodiments, computer-implemented methods are disclosed inwhich, under control of one or more hardware computing devicesconfigured with specific computer executable instructions, one or moreaspects of the above-described embodiments (including one or moreaspects of the appended claims) are implemented and/or performed.

In various embodiments, non-transitory computer-readable storage mediumsstoring software instructions are disclosed, wherein, in response toexecution by a computing system having one or more hardware processors,the software instructions configure the computing system to performoperations comprising one or more aspects of the above-describedembodiments (including one or more aspects of the appended claims).

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an embodiment of a known SQL database arrangementthat may be associated with certain existing search systems.

FIG. 2 illustrates a flowchart for searching and/or analyzing resourcessuch as databases and related information, according to certainembodiments.

FIGS. 3A-3F illustrate various aspects of exemplary search features andassociated user interfaces of a search system for searching andanalyzing resources and related information, according to certainembodiments.

FIGS. 4A-4B illustrate various further aspects of exemplary search andanalysis features and associated user interfaces for searching andanalyzing resources and related information, according to certainembodiments.

FIGS. 5A-5C illustrate various aspects of exemplary search and exploresearch results features and associated user interfaces for searchingresources and related information, according to certain embodiments.

FIGS. 6A-6F illustrate various aspects of exemplary enterprise searchfeatures and associated user interfaces of a search system for searchingresources and related information, according to certain embodiments.

FIG. 7 is a data flow diagram illustrative of the interaction betweenthe various components of a search system configured to search resourcesand related information, according to one embodiment.

FIG. 8 is a data flow diagram illustrative of the interaction betweenthe various components of a search system configured to search resourcesand related information using a graphical indicia such as graphical userinterface features, according to one embodiment.

FIG. 9 is a data flow diagram illustrative of the interaction betweenthe various components of a search system configured to search resourcesand related information using a saved or shared search, according to oneembodiment.

FIG. 10 illustrates a flowchart for searching and/or analyzing resourcesand information, according to certain embodiments.

FIG. 11 illustrates one embodiment of a database system using anontology consistent with implementations herein.

FIG. 12 illustrates one embodiment of a system for creating data in adata store using a dynamic ontology consistent with implementationsherein.

FIG. 13 illustrates an exemplary computer system with which certainmethods discussed herein may be implemented.

DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS Terms

In order to facilitate an understanding of the systems and methodsdiscussed herein, a number of terms are defined below. The terms definedbelow, as well as other terms used herein, should be construed toinclude the provided definitions, the ordinary and customary meaning ofthe terms, and/or any other implied meaning for the respective terms.Thus, the definitions below do not limit the meaning of these terms, butonly provide exemplary definitions.

Ontology: Stored information that provides a data model for storage ofdata in one or more databases. For example, the stored data may comprisedefinitions for object types and property types for data in a database,and how objects and properties may be related.

Data Store: Any computer readable storage medium and/or device (orcollection of data storage mediums and/or devices). Examples of datastores include, but are not limited to, optical disks (e.g., CD-ROM,DVD-ROM, etc.), magnetic disks (e.g., hard disks, floppy disks, etc.),memory circuits (e.g., solid state drives, random-access memory (RAM),etc.), and/or the like. Another example of a data store is a hostedstorage environment that includes a collection of physical data storagedevices that may be remotely accessible and may be rapidly provisionedas needed (commonly referred to as “cloud” storage).

Database: Any data structure (and/or combinations of multiple datastructures) for storing and/or organizing data, including, but notlimited to, relational databases (e.g., Oracle databases, mySQLdatabases, etc.), non-relational databases (e.g., NoSQL databases,etc.), in-memory databases, spreadsheets, as comma separated values(CSV) files, eXtendible markup language (XML) files, TeXT (TXT) files,flat files, spreadsheet files, and/or any other widely used orproprietary format for data storage. Databases are typically stored inone or more data stores. Accordingly, each database referred to herein(e.g., in the description herein and/or the figures of the presentapplication) is to be understood as being stored in one or more datastores. A “file system” may control how data is stored and/or retrieved(for example, a disk file system like FAT, NTFS, optical discs, etc., aflash file system, a tape file system, a database file system, atransactional file system, a network file system, etc.). For simplicity,the disclosure is described herein with respect to databases. However,the systems and techniques disclosed herein may be implemented with filesystems or a combination of databases and file systems.

Data Item (Item), Data Entity (Entity), or Data Object (Object): A datacontainer for information representing specific things in the world thathave a number of definable properties. For example, a data item mayrepresent an entity such as an account, a transaction, a person, aplace, an organization, a computer, an activity, a market instrument, orother noun. A data item may represent an event that happens at a pointin time or for a duration. A data item may represent a document or otherunstructured data source such as an e-mail message, a news report, or awritten paper or article. Each data item may be associated with a uniqueidentifier that uniquely identifies the data item. The data item'sattributes (for example, one or more values of a data item or metadataabout the data item) may be represented in one or more properties. Theterms “data item,” “data object,” and “data entity” may be usedinterchangeably and/or synonymously in the present disclosure.

Item (or Object or Entity) Type: Type of a data item. Example data itemtypes may include Account, Transaction, Person, Event, or Document. Dataitem types may be defined by an ontology and may be modified or updatedto include additional data item types. A data item definition (forexample, in an ontology) may include how the data item is related toother data items, such as being a sub-data item type of another dataitem type (for example, an agent may be a sub-data item of a person dataitem type), and the properties the data item type may have.

Properties: Attributes of a data item and/or other informationassociated with a data item. Properties may also be referred to as“metadata.” At a minimum, each property of a data item has a propertytype and a value or values. Properties/metadata associated with dataitems may include any information relevant to that data item. Forexample, properties associated with an account data item (e.g., a dataitem having an item type of “account”) may include an account number, anassociated customer identifier, an opening date, and/or the like. Inanother example, a person data item may include a name (for example,John Doe), an address (for example, 123 S. Orange Street), and/or aphone number (for example, 800-0000), among other properties. In anotherexample, metadata associated with a computer data item may include alist of users (for example, user1, user 2, and the like), and/or an IP(internet protocol) address, among other properties.

Property Type: The type of data a property is, such as a string, aninteger, or a double. Property types may include complex property types,such as a series data values associated with timed ticks (for example, atime series), and the like.

Property Value: The value associated with a property, which is of thetype indicated in the property type associated with the property. Aproperty may have multiple values.

Link: A connection between two data items, based on, for example, arelationship, an event, and/or matching properties. Links may bedirectional, such as one representing a payment from person A to B, orbidirectional.

Link Set: Set of multiple links that are shared between two or more dataitems.

Overview

As mentioned above, according to various embodiments, a data search andanalysis system (the “system”) is disclosed that provide search andanalysis of large, object-oriented data sets in an efficient manner viainnovative user interface features and search algorithm functionality.For example, a system herein may search for information and/orrelationships based on specified search criteria and return results thatmay be displayed dynamically and further filtered or analyzed. Thesystem may involve an object oriented database and a software layerincluding a specialized user interface between the user and thedatabase(s). The user interface may comprise various tools as well aspredefined and configurable features that enable effective search of thedata as well as display of search results that are configurable andreadily managed to provide immediate and useful search results. The userinterface may display the search results and various graphicalrepresentations and models associated with the search results. The userinterface may also provide tools enabling dynamic manipulation anddisplay of search results and/or underlying object models, as well asadditional functionality to further filter initial search results.

In some cases, a person or organization may want to search relevantresources regarding transactions or activities by individuals ororganizations. Such organizations may be any entity, such as a company,a school, etc. The resources and data to be searched may be arranged asdata objects and may have related information, such as reports,transactions, people, identifying data (e.g., name, address, account ortransaction identifiers, phone numbers, email addresses, etc.),documents, etc., associated with them. Previous systems may store dataabout such information and data objects (or other information relatingthereto), but may not provide any way to search the resources andinformation in an effective manner. Accordingly, it is advantageous toprovide the present systems and methods, inter alia, to search resourcesand/or related information in an efficient manner.

In order to address these and other challenges, disclosed herein arevarious systems and methods for searching resources and relatedinformation using data structures, which may be enabled by innovative,interactive user interfaces. According to certain aspects, a searchsystem can provide integrated searching of resources and informationassociated with resources, for example, based on search criteriarelating to resources and/or other parameters associated with searchresults or the information desired. Resources and other informationsearched and/or displayed may be represented by respective types of dataobjects, and each type of data object may have one or more propertiesassociated with the type. After receiving search criteria (e.g., from auser), the system can search the properties of resource data objectsand/or other data objects in order to identify resources and/or resultsthat meet the search criteria. The system may also use other types ofdata objects that can be associated with the initial resources and/ordata objects analyzed, and in such case, the system can also performsearching as a function of the properties of such other types of dataobjects. By allowing the search criteria to relate to different types ofdata, the system can provide thorough search results.

Here, by way of example, illustrative search systems and methods may runfederated searches against two data sources, for example, an elasticsearch cluster or database and another database, such as anobject-oriented or object model database.

Systems may display the search results in a user interface, for example,in order to provide an overview of the resources and relatedinformation. The user interface can be organized in a way that makes iteasy for users to process or understand large amounts of data and obtainrelevant information in a manner that is both readily comprehendible andusable. For example, the user interface can display resources, searchresults, associated and/or aggregated information, and/or graphicalindicia including object model graphs in various interrelated panes,which may also be tiered and/or toggled between. The user interface mayalso display specific information about selected data in correspondingpanes, such as in response to user input. In these and other ways, thesystem can provide a dynamic user interface including panes that enabledynamic and useful display of search results and related information toadvance the search process and thereby yield meaningful search results.The user interface can also allow users to navigate information atdifferent levels within the same user interface. For example, inresponse to user input, the user interface may present details about aparticular data object, report, or other related data within the sameinterface. The user interface may also allow users to create newobjects, integrate or aggregate search results, and/or add new resourceswithin the same user interface.

In such ways, the present systems and method enable searching fordesired results in a dynamic yet straightforward manner that avoidsexisting problems. Unlike previous systems, for example, systems andmethods herein can automatically analyze data objects and relatedinformation for display and provide tools to readily perform initial andsecondary searches of same. The system can also provide valuabledisplays, aggregations, summaries, and/or manipulations of theunderlying information, for example, as explained in connection with thefigures below. The system can provide an efficient way of searching forrelevant resources and information. Certain details relating to theseand other innovations are explained below, for example, in connectionwith FIGS. 2-13.

FIG. 2 illustrates an exemplary flowchart 220 associated with searchingand/or analyzing resources and/or information, such as those involvingdata structures, according to one or more embodiments consistent withaspects of the present innovations. While the examples of FIGS. 2-13 mayrefer to transaction data as the data being processed, other types ofdata may be searched and analyzed consistent with the presentinnovations. As detailed in FIG. 2, in an initial step 221, a Webinterface may be provided to enable processing and handling ofinformation between a user and one or more data stores or databases tobe searched, wherein such data stores or databases may contain organizedinformation including object oriented and/or relationally-structuredinformation associated with transaction data to be searched. Next, at222, a user interface is generated that is configured to display thetransaction data including one or more representations of the organizedinformation within the user interface, the one or more representationsof the organized information corresponding to parameters of thetransaction data determinable via search queries, Then, at 223,interactive user interface tools may be provided, including graphicalinput fields and/or indicia that enable a user to perform predefinedand/or customizable searches of the transaction data as a function ofone or more search queries. Finally, at 224, in response to selection ofone or more search queries in the user interface, various processing maybe performed. For example, the organized information may be searched andcategorized into at least one subset that meets the one or more searchqueries, the user interface may be generated and/or populated to displaythe at least one subset that meets the one or more search queries, andthe one or more representations of the organized information may beprovided and/or updated to display the transaction data related to atleast one attribute of the one or more search queries.

Exemplary User Interfaces of the Search System

FIGS. 3A-3F illustrate various aspects involving exemplary searchfeatures and associated user interfaces of a search system, according tocertain implementations herein.

FIG. 3A illustrates a user interface 300 that displays an exemplarysearch portal providing various search fields and options including a‘transaction search’ tab 304 and an ‘enterprise search’ tab 306. Asdetailed in FIG. 3A, the user interface 300 illustrates various searchfields and options 302 for the transaction search tab 304 selected, asshown in bold. The transaction search tab 304 and associatedfunctionality may be configured to perform searching on transaction datastored, for example, in tabular format in backend servers, memory,and/or resources. In one embodiment, illustrative search systems andmethods may run federated searches against two (or more) data sourcesincluding, for example, an elastic search cluster or database andanother database, such as an object-oriented or object model database.

Additional features, such as searching via the enterprise search tab 306and its associated functionality may also, optionally, be generated andprovided via such a portal. Here, for example, such enterprise searchtab 306 may provide user functionality for searching across severaldifferent data sets, such as information from existing databases,summaries, reports, searches or investigations, as explained in moredetail in connection with FIGS. 6A-6F.

Turning to the details of FIG. 3A, the transaction search tab 304provides a user with specified (e.g., pre-set, etc.) oruser-configurable query fields 302, which enable the user to entervarious criteria or queries to be searched against the availableinformation, such as sources of transactions data. In the embodimentshown in FIG. 3A, for example, the query fields 302 may include anaccount holder field 308, an asset field 310 (e.g., name, symbol, etc.),an address or other geographic- or location-related field 312, a datefield 314, and a search button 318. Further, criteria and queriesentered into these fields may be searched against the tabulartransaction data and/or columns of data within the databases. Accordingto certain implementations, for example, a search submission maydynamically search several different columns of potentially matchingdata from the databases, such as several different name columns and asocial security number column. In some embodiments, the searches may bedisjunctive (i.e., searched via “or” operation) within a field andconjunctive (i.e., searched via “and” operation) across the query fields302.

With regard to an illustrative search process, if transaction dataregarding an account holder is desired, the user may enter the person'sname, social security number or other identifying information in theaccount holder field 308. Here, for example, if the user enters lastname ‘Yundt’ in the account holder field 308 and selects the searchbutton 318, transaction data matching or corresponding to this searchquery will be displayed on the ensuing search results page. FIG. 3Billustrates a user interface 320 that displays such a search resultspage, including a list of results (i.e., matches) 326, 328 on the lefthand side as well as search information 330A of one or more resultsselected from this list on the right hand side. Here, for example,search information may be provided for just ‘Dianna Yundt’ 328, or forall results 324 or individuals shown in the list of results, namelyKrysta Yundt 326 and Dianna Yundt 328 shown for purposes ofillustration, here. As such, the search information 330A may cover thesearch results for all account holders 332 and may include the wholetable of transactions 338 pulled from the tabular transaction dataderived from the search criteria. In some embodiments, search resultsmay be further developed by performing aggregation over the whole tableof results as a function of a parameter associated with the searchcriteria or query. The parameter used to perform such aggregation is aparameter selected or calculated to provide the most useful results.Options may also be provided to view and further search transactioninformation via a transactions button 334, or perform additionalanalysis via an analyze button 336.

FIG. 3C illustrates a particular user interface (UI) menu 360corresponding to the asset field 310 shown in FIG. 3A, according to anembodiment herein. The UI menu 360 illustrated in FIG. 3C may comprise aspecialized asset drop down menu 362 that includes various specificsearch criteria 365, 366, 367, one of which (an agent name associatedwith the transaction 366) being shown as selected by the user. The textfor the search criteria selected by the user, here, may then be enteredinto a text box 364, such as at the top of the drop down menu. In someimplementations, the options provided in the drop down menu may bepredefined, although additional functionality to customize the list ofoptions in the menu may be included, such as by providing the option to‘add more fields’ by user input or selection, such as via an option in adrop down menu (365, top) and/or via a dedicated drop down menu orbutton 368, to customize or add more fields to be searched. According toone embodiment, a novel asset drop down menu 360 may comprise variouspermutations of specific search criteria, namely selections for accountnumber, agent name, employer name, agent number, and transaction type.

FIG. 3D illustrates a particular user interface (UI) menu 370corresponding to the date field 314 shown in FIG. 3A, according to anembodiment herein. As illustrated in FIG. 3D, various calendar andgraphical user interface options 372 may be provided, here, including afield to enter a date or date range 376 and various buttons to selectspecific time ranges, such as ‘past week’, ‘past month’, ‘past 3months’, ‘past 6 months,’ ‘past year’, ‘past 2 years’, and the like.

FIG. 3E illustrates a transactions search results user interface 380showing selection of a single individual from the list of search resultsas well as associated functionality, according to embodiments herein. Asillustrated in FIG. 3E, a single individual 382 is selected from thelist of search results, and associated search information 330B isprovided in a pane shown, here, on the right side of the user interface380. The associated functionality may include a profile button 385 todisplay profile information 384 of the individual selected.

FIG. 3F illustrates another transactions search results user interface390 showing selection the single individual Krysta Yundt 382 selectedfrom the list of search results as well as additional analysis featuresand functionality, according to embodiments herein. As with FIG. 3E, thesingle individual 382 is selected from the list of search results, andassociated search information 330C and search analysis functionality isshown as being provided, here, on the right hand side of the screen. Asillustrated in FIG. 3F, a user may select an analyze button 395 toperform and/or provide additional analysis on a selection of initialsearch results (e.g., person 382, transaction data, etc.) returned fromthe database(s), such as from the tabular transaction data source. Theanalyze button 392 may provide a variety of aggregations over thetransaction data to graphically display unique results that help a uservisualize and understand data of significance associated with theselected user. With regard to several illustrative aggregations shown inFIG. 3F, the search information 330C may include a list of transactionsor products that were most profitable 392, a list of associated entitiesthat profited the most from that transaction data 394, and a graphshowing net profits over time 396. Various other custom aggregations,graphs and views may also be provided, as a function of the parametersof the transaction data in question.

FIGS. 4A-4B illustrate various further aspects involving exemplarysearch and analysis features and associated user interfaces of a systemfor searching and analyzing resources and related information, accordingto certain embodiments.

FIG. 4A illustrates a user interface 400 that displays an exemplarytransactions search fields 403-408 and an exemplary transaction searchresults field 409A, according to embodiments herein. As illustrated inFIG. 4A, users have the ability to refine searches as well as selectcriteria and parameters regarding which additional aggregations and/oranalysis of the search results may be provided. The user interface 400shown in FIG. 4A may include the various transaction search fields andparameters set forth above, namely an account holder field 404, an assetfield 405, an address or geographic/location field 406, a drop down menuto add more fields 407, and a select button 408. Turning to the searchresults field 409A, implementations herein may provide variousaggregations and/or analyses of the search results (transaction data)initially supplied. For example, the system may calculate and the userinterface may display various graphical indicia helping a user visualizewhich parties profited the most from the transactions 414, which relatedentities profited from transactions or were associated with transactionsof interest 415, and/or various timing considerations related to thetransaction data.

FIG. 4B illustrate another user interface 420 that displays exemplarysearch and search results fields 403-408, 409B, similar to FIG. 4A,though illustrating the capability of uploading and analyzing reports ordocuments regarding individuals that contain addition search terms ofinterest. As illustrated in FIG. 4B, implementations herein may uploadand automatically parse and extract additional structured and/orunstructured data regarding a subject individual that may be present insuch reports or documents. For example, the account holder field 404 mayinclude a configurable search form that automatically parses andextracts the data from reports or documents uploaded to the system. Insome implementations, the automatic parsing and extraction of the datamay be achieved via walking the data structure, such as an XML tree,pulling out information having the relevant values or tags, andappending the information into the user interface to perform furtheranalyses on the initial search results. The parsing may be performedright in the browser, with the extracted values being populated directlyinto the account holder field 404. Here, then, via selection of a button417 or other UI option, a user may upload a desired (e.g., “XYZ”) reportand automatically extract additional information regarding individualsand/or transactions of interest. Based on this information, additionalexploration and aggregation of the initial search results, e.g. furtheranalysis such as secondary or iterative searches, may be performed as afunction of the information automatically parsed and extracted from thedesired report.

FIGS. 5A-5C illustrate various aspects involving exemplary tagging,saving and exploring results features and associated user interfaces ofa search system for searching resources and/or information, according tocertain embodiments.

FIG. 5A illustrates a user interface 500 that displays exemplaryfeatures of displaying and tagging (or starring) an individual ofinterest, according to embodiments herein. As illustrated in FIG. 5A, auser interface 500 displaying search results 502 and search information503A similar to those described above is disclosed. When the profilebutton 411 is selected, the profile 505 of a selected individual 504A isdisplayed on the right hand side. As a user performs searches ofnumerous individuals, for example, the user may tag or star anyindividual that they would like to later analyze further oraggregate/compare with other individuals or information. In FIG. 5A, forexample, the user may tag or star ‘Rufus Robel’ and add him to a savedperson of interest list.

Similarly, the user may perform searches as well as analyze and add anumber of additional individuals to the saved persons of interest list.As shown in FIG. 5B, the user may then assemble a list of all theindividuals who have been selected as being of interest, with theexemplary user interface 510, here, showing a list of 3 individuals ofinterest compiled together. Finally, as illustrated in FIG. 5C, the usermay then assemble, aggregate, and further analyze the sum of data forall the selected individuals, to analyze or assess whether the compiledor aggregate search results for all of the person of interest shed lighton any overlap, shared transaction activities, and/or other transactioncommonalities between the group of individuals selected as being ofinterest.

FIGS. 6A-6F illustrate various aspects involving exemplary enterprisesearch 403 features and associated user interfaces of a search systemfor searching resources and related information using data structures.

FIG. 6A illustrates a user interface 600 that displays exemplary searchfeatures and search results 605A related to the enterprise search tab403 as well as underlying functionality, according to embodimentsherein. As illustrated in FIG. 6A, when the enterprise search tab 403 isselected, a list of various enterprise search fields 601-604 are shown,here, as being displayed on the left hand side of the user interface,and enterprise search results 605A may be displayed on the right handside. In some embodiments, the enterprise search fields may include aperson name search field 601, an entity name search field 602, a fulltext search field 604, a list of enterprise data sources that may beselected for searching 604, and a search button. The enterprise searchresults 605A may include a table of transaction data 606 that satisfiesthe search criteria.

FIG. 6B illustrates a user interface 608 that displays additionalexemplary search results related to the enterprise search functionalityset forth in FIG. 6A, according to present embodiments. Here, in theexample shown, the user interface 608 may display search results basedon information from one or more data sources selected from theenterprise data sources field 604 for an individual selected in theperson search field 601. The search results may include records that aremodeled or based on the information in the data sources, augmented toprovide information that is derived as a function of analysis of theunderlying data structures, e.g., object models such as those organizedusing object nodes and/or object link graphs. FIG. 6B illustrates anexemplary record 609 that may be characterized by a record number 610and a work identifier 611. Options to view a printable version of therecord 615 and/or highlight data that matches in the search 616 may beprovided as buttons in some implementations. The selected record 609 mayinclude a variety of additional information based on the object andunderlying information. Among other things, for example, the additionalinformation may comprise a record information field 612 containingstatus and other details of the record, an object/results field 613 thatprovides information regarding the objects including associated data,and a summary field 614 listing summary information related to thesearch results provided.

As mentioned above, the search results may include records that arebased on the information in the data sources, in that the search resultsare derived as a function of analysis of object models of the datasource information. FIG. 6C illustrates a user interface 620 thatdisplays exemplary graphical depictions of an object model including theunderlying objects and data structures, according to one embodiment. Asillustrated in FIG. 6C, an exemplary object model 621 may include a rootnode 622, one or more people 623C associated with the root node, one ormore attachments 623A, 623B associated with the root node, one or morenotes associated with the root node, and one or more work items 624associated with the root node. Further, each work item 624 may include aplurality of actions 625A, 625B that parties have added to the work item624.

According to implementations herein, information from the data sourcesmay be transformed into the object models used to provide the searchresults, above. In one embodiment, for example, the initial informationor source record may be arranged as semi-structured case records. Suchrecords may be parsed and broken-out into the appropriate object modelused to provide the search results. Here, for example, an object modelmay be a graph of a single parent node and a plurality of child nodes.The object models may then be traversed to provide a variety of searchresults associated with analyzing the full set of nodes within eachobject model. Here, then, if the basic search initially provides a matchof a child node in an object model, the search will traverse the graphof the parent and all of its children. Based on such extended analysis,various UI information and custom views of relevant or potentiallyrelevant information may be provided.

FIG. 6D illustrates a custom view user interface 640 that displaysvarious search results and custom views including those that may bederived from object model analysis, such as that above, according toembodiments herein. As illustrated in FIG. 6D, a list of various searchresults and custom views that may be similar to and/or associated withthose shown in FIG. 6B are shown. These specialized search results andcustom views may comprise various information and/or fields. Such fieldsmay comprise a field for ‘notes’ (e.g., including content such as date,author, note, etc.), a field for workflow history (e.g., includingcontent such as date, author, assignee, assignee group, comment, title,etc.), a field for ‘subjects’ or individuals (e.g., including contentsuch as name, address, email, phone, etc.), a field containinginformation regarding the entity or entities associated withtransactions (e.g., including content such as name, profession, address,data associated with the entity or entities, etc.), and/or a fieldrelated to conduct or information associated with transaction data(e.g., including content or fields for ongoing transactions, datesassociated with the transaction, name, type, asset, etc. In oneimplementation, the ‘subjects’ field may include a toggle button thatdisplays the names in a manner suitable for copying and pasting. Incertain embodiments, these custom view user interfaces may displayinformation from the parent node and all of the children nodes that arereturned based on the search criteria provided. Further, an individualperforming the search herein and manipulating the user interfaces maynavigate between (to and from) the custom views and the associatedgraphical depictions of the object model data being displayed in thecustom view, for example, between views such as FIG. 6C and FIG. 6D,wherein the information being displayed in any such interrelated customview(s) is dynamically and automatically updated to reflect the latestsearch criteria and/or adjustments to the search criteria or underlyingdata made during the search.

Turning back to FIG. 6D, such custom view user interfaces 640 may besimilar to FIG. 5B in that it displays search results based oninformation from another data source selected from the enterprise datasources field 604 for an individual selected from a list of searchresults 641 on the left hand side of the user interface 640. Asillustrated in FIG. 6D, a user interface showing search results from anexemplary “ABC” database for a search subject named “Jane Doe” areprovided. Here, for example, the search results in the search resultsfield 642 may include specified information 643 regarding Ms. Doe fromthe ABC database as well as various other information 644 related to theperson or transaction data being searched.

Search results shown in the custom view user interface 640 may be basedon various search algorithms for an individual or information selectedfrom a list of search results 641 on the left hand side of the userinterface 640. In some embodiments, the custom view information 640 mayinclude search results such as firms, related persons, accounts relatedto the transaction(s), associated organizations, or other elements ofthe data structures revealed in response to the search query. The customview information 640 may be generated based on specialized searchalgorithms, which may be performed as a function of data properties ofthe data sources (e.g., document identifiers, record identifiers,transaction numbers, etc.), which provide, as results, informationassociated with child or root nodes of the object trees. Suchinformation may be provided by a complete mapping, e.g., via fullmapping of all data source/unique property combinations, of each datasource's unique data properties against the object trees. This providesor yields search capabilities that are able to bring back resultsrelated to the roots and/or child nodes thereof. As such, systems andmethods may be structured such that the unique properties are configuredto link back to the tree roots.

Turning back to search algorithms of the overall object trees, oneillustrative algorithm may include performing full text searching acrossall items that exist in the backend database(s) that have the relevantdata source labeled on the object as a property, identifying objectsthat match the property/search criteria, analyzing those data object viaassessing specific properties of the object, performing mapping ofvarious data associated with the search criteria, and returning searchresults associated with the objects that contain the data being mappedagainst the objects. Various custom views may then be provideddisplaying these search results as a function of the information and/orhierarchical structure(s) associated with the underlying objectsreturned in the search.

In certain embodiments, various search algorithms that may be includedor involved in the processing and providing such custom views mayutilize specialized search logic, such as logic used for searchingelastic search clusters and/or various backend systems. Here, forexample, the search logic involved in the enterprise searching mayinvolve special data integrations are defined in such a way to provideand/or utilize unique properties which are utilized to link back to thetree roots. Further, other search integrations may be configured to readthrough and reduce all the tree roots to get back to a subjectparameter, for example, an entity involved with the transaction data.All of these search results and related data may be aggregated into aprofile, such as a profile associated with a transaction entity.

FIG. 6E illustrates a custom view user interface 650 that displays anexemplary object model graph including the objects and underlying objectand data structure information as well as search results fields such asfor object types 658, entity properties 659 and event properties 660,according to an embodiment. As illustrated in FIG. 6E, an object modeldisplayed in the custom view 650 may be restructured from a previousdisplay (e.g., FIG. 6C) and is configurable into differing objectstructures to facilitate visualization by a user and provide improvedhandling or processing of search, analysis and/or other functionalityassociated with the object model or object model graph. According toimplementations herein, the object model and graph may be automaticallyand/or manually configurable. Here, for example, a parent node 654,e.g., stemming from an initially-identified node 622 of FIG. 6C, may beestablished and reclassified and relocated graphically as a parent node.

In the implementation shown in FIG. 6E, an object model view related tothe search results shown in FIG. 6D may be initially provided as afunction of a subject data property that is searched (e.g., a propertyrelated to a child node 654 and/or associated property, such as aperson, etc.). The initial hit provided based on the search may bedisplayed as an object 654, such as a person, associated with the parentnode 651. One or more attachments 652, 653 associated with the parentnode 651 may also then be display on the object model graph as childobjects of the parent node 651. Similarly, one or more work items 655may be identified and displayed as child nodes of the parent node 651,and associated items such as actions 656, 657 may be displayed aschildren of the work item 655. Further or secondary searching may alsothen be performed and the results displayed via one or more of theobject model graph and/or an associated search results panes, e.g., userinterface 630, search results 658, 659, 660, etc.

FIG. 6F is another custom view user interface 670 that helps illustratefurther searching and graphical features, associated search algorithms,analysis and search results, and an exemplary object model graphincluding the objects and underlying information and structure of theobjects, according to various embodiment herein. As described inconnection with FIG. 6F, search algorithms and/or further or secondarysearching may be performed to identify particular information and/orobjects that bear relation to the initial search criteria and/or resultsprovided. Some search algorithms and logic may involve novel dataintegrations that are defined in a way that there are unique propertiesto link back to the tree roots regarding, as explained further below.Other search algorithms and logic may involve novel data integrationsthat read through all the transaction data/roots and reduce those intoassociated persons, which may then be shown in a person view thatdisplays all aggregated data associated with that person/profile.Turning to one example, an initial search may provide a hit on a personobject 654, and such object may have identifying numbers, parameters orcriteria associated with it, which may be listed in the adjacent fields658, 659, 660. For an initial object identified as being of interest,objects or nodes sharing or having relation to that selection may thenbe displayed in the graph and may be further searched as a function ofsecondary searching. According to implementations herein, this secondarysearching may be a search of second identifying information associatedwith an object, such as an identifying number, parameter or criteriaselected from the data displayed in the adjacent fields 658, 659, 660. Asecondary search performed on such information may then return roots ofthe graph associated with the second identifying information selected.When such secondary searching is performed, the object(s) returned fromthe search typically contain the identifier corresponding to the dataproperty of the object being searched by the user.

However, in certain implementations of specific search logic, there maybe exceptions when a search may extend beyond exclusively returningobjects having the precise identifier or directly corresponding to theunique properties searched. For example, for specific parameters, suchas phone numbers (e.g., objects 672, 673), emails (e.g., object 671) andthe like, specific secondary searches regarding such parameters may beperformed. One specific secondary search, here, may include a firstsearch iteration that yields at least one object (e.g., a person 654)directly linked to such parameter, followed by one or more additionalsearches to return extended search results, such as information based ona search parameter (e.g., a record or node sharing a same identificationnumber or parameter of the person) and/or additional or associatedobjects, work items or the like, which may also be related to suchrecords or nodes. In one example, a first search may be done to get backto a person (return that object), then perform another search to returnthe associated record object 651 and its child nodes, then even furthersearching to return children of those objects, e.g., work items 656,657. Such secondary or extended search of objects/nodes may therebyprovide a more expansive set of roots to display in the tree. Here,then, such search logic may return results for these specific parameters(e.g., phone numbers, email addresses, etc.), where the secondary searchis performed and the search results may include all information relatedto such parameters, even though the objects may not be contained in orbe directly associated with the unique property.

In many implementations, however, basic search functionality herein maybe configured in a straightforward manner to primarily involve andreturn only objects directly having or linked with a unique property,then follow that object back to the root(s). Such root is then displayedin the results list, and the root is then passed to the custom view togather the full tree for display.

Finally, the various information displayed in the specialized searchresults and custom views of FIGS. 6A-6F may be selected and used asadditional search criteria to augment or refine the initial searchresults, such as via the secondary search functionality discussed above.

Searching Data Sources, Information and/or Objects

FIG. 7 is a data flow diagram illustrative of the interaction betweenthe various components of a search system 700 configured to search datasources and related information (e.g., documents, information, objects,etc.) using data structures, according to one embodiment. Certaindetails relating to the system 700 are explained above, e.g., inconnection with FIGS. 2-6F. The system 700 may include a search engine750 and may be connected to one or more data sources 720. The datasources 720 may include one or more databases. The system 700 maycommunicate with a user system 710. The search system may also include aprocessing component 760 that handles the storage of data returned fromthe data sources along with any data generated by the search system. Thesearch engine 750 and/or processing component 760 may reside on aseparate computing device from the system 700, depending on theembodiment.

At data flow action 1, the system 700 receives search criteria foridentifying desired source data and information (e.g., documents,information, objects, etc.). Users can enter search criteria relating toany or multiple of those data types. As explained above, source data andrelated information may be represented as respective types of dataobjects and can be stored in one or more databases or data sources.Certain search criteria may relate to properties of resource dataobjects, or properties of other data objects linked to the resource dataobjects. In some embodiments, the search criteria for resources may bebased on the properties of data objects that are not resource dataobjects. When the system 700 receives the search criteria, the system700 can search through the properties of the resource data objects forthe criteria, search through properties of associated data objects, andsearch through the properties of any other related data objects forrelevant properties. The search may be more dynamic since properties ofresource data objects, document objects, event data objects, entity dataobjects, or other associated objects can be used.

At data flow action 2, the system 700 searches properties of resourcedata objects and/or properties of other objects associated with theresource data objects based on the search criteria. If the user onlyentered search criteria relating to resources, the system 700 canidentify resource data objects that meet the search criteria and returnthe identified resource data objects as well as document data objects,event data objects, entity data objects, other data objects orinformation associated with the identified resource data objects. Asexplained above, search criteria relating to resources may be based onproperties of other data objects linked to resource data objects, andthe identified resource data objects can include resource data objectswhose associated data objects have properties that meet some or all ofthe search criteria. If the user only entered search criteria relatingto a person or transaction, the system 700 may identify data objectsthat meet the search criteria and return the identified person ortransaction data objects as well as resource data objects, event dataobjects, entity data objects, or other data objects associated with theidentified document data objects. Similar to the resource data objects,search criteria relating to documents may also be based on properties ofother data objects linked to document data objects, and the identifieddocument data objects can include document data objects whose associateddata objects have properties that meet some or all of the searchcriteria. In a similar fashion, searches centered around event dataobjects, entity data objects, or other data objects associated withresource data objects can be performed. If the user entered acombination of search criteria relating to resources and search criteriarelating to other data objects (for example, transactions, people,documents, or entities), the system 700 can run the search for resourcedata objects with the search criteria relating to resources and run thesearch for other data objects with the search criteria relating to suchother data objects, and return all resource data objects and such otherdata objects in the search results, e.g., as explained above.

The search engine 750 may provide various search-related functions, suchas searching by faceting, indexing, etc. The data source(s) 720 canstore information associated with the data objects. For example, thedata sources 720 can include the database system 1110 as explained inconnection with FIG. 11.

The data model or data objects may be organized in a particular way inorder to optimize searches. For example, a resource data object mayinclude document data objects, and document data objects also areassociated with resource data objects. Similarly, a resource data objectmay include event data objects, and event data objects also areassociated with resource data objects. Circular references may beeliminated among data objects in order to provide faster search results.

At data flow action 3, the system 700 provides the search resultsmeeting the search criteria. As mentioned above, the search results caninclude information such as transactions, people, resources, documents,entities, or other objects. Even in cases where the user only enterssearch criteria for a person or transaction, the system 700 may returnthe information or other objects associated with the identified personor transaction.

At data flow action 4, the user system 710 displays the search resultsincluding appropriate summary of resources and/or related information(e.g., transactions, people, documents, information and/or otherobjects) in the search results. The summary can relate to multipleresources or each individual resource, for example, as explained inconnection with FIGS. 3A-6F. The user system 710 may generate a tiereduser interface in which resources are displayed in one pane or sectionand details about the resources are displayed in another pane orsection. The details can change based on the selected resource(s). As inFIGS. 3A-6F, the resources may be displayed in a first region or pane,and the details about the resources (e.g., information about documents,etc.) can be displayed in a second region or pane the content of thesecond pane can change or update based on the information in the firstpane. Depending on whether one resource is selected or multipleresources are selected in the first pane, the second pane can displayinformation (e.g., summary) about a single resource or display aggregateinformation (e.g., summary) about multiple resources.

Although various aspects of searching are described using transactions,people, resources, documents, information, and entities, the searchsystem described in this disclosure (e.g., the system 700) canaccommodate any type of primary objects and related objects. The searchcan be focused on a primary object and be based on properties and/orcharacteristics of the primary object as well as linked objects of theprimary object. The search system may accommodate any data organizedaround an object and its related information. All the user interfacesdescribed above, for example, in connection with FIGS. 3A-6F, may alsobe adapted and configured for various types of data. For instance, theuser interfaces of FIGS. 3A-6F may be adapted for other types of data.The search system can be compatible with any type ofsearch-analyze-export workflow.

Any of the data flow actions performed by the system 700 may be based onuser input, may be automated, or may be based on a combination of userinput and automation.

Searching for Resources and Related Information Via Graphical UIFeatures

FIG. 8 is a data flow diagram illustrative of the interaction betweenthe various components of a search system 800 configured to searchresources and/or related information (e.g., people, transactions,documents, information, entities, and/or other objects) via graphical UIfeatures, according to various embodiments. The system 800 andcorresponding components of FIG. 8 may be similar to or the same as thesystem 700 and similarly named components of FIG. 7. The system 800 mayinclude additional or different components, depending on the embodiment.Certain details relating to the system 800 are explained in connectionwith the above disclosure.

At data flow action 1, the system 800 receives search criteria foridentifying people, transactions, resources, documents, information,entities, and/or other objects. Data flow action 1 may be similar todata flow action 1 of FIG. 7. At data flow action 2, the system 800searches for people, transactions, resources, documents, information,entities, and/or other objects based on the search criteria. At dataflow action 3, the system 800 provides the search results meeting thesearch criteria. Data flow action 3 may be similar to data flow action 3of FIG. 7.

At data flow action 4, the user system 810 displays information and/orattributes associated with the resources in the search results andgraphical UI indicia for the attributes. For example, the user system810 displays the attributes of the resources and corresponding graphicalindicia in the search results panes as explained in connection withFIGS. 3A-6F. The user system 810 may also display attributes of otherdata objects as appropriate. For instance, if certain search criteria isbased on properties of linked data objects of the resource data object,the properties related to the search criteria can also be shown byvarious written and/or graphical indicia.

At data flow action 5, the system 800 receives user selection of one ormore search criteria and/or attributes. At data flow action 6, thesystem 800 filters the search results based on the one or more criteriaand/or attributes. If user selects multiple attributes, the system 400can recognize that multiple attributes have been selected and computethe changes to the user interface and refresh the user interface oncefor the selected attributes. Additionally, the system may determine thatall remaining search results have a given attribute, and may thereforedisallow the user from deselecting that attribute (e.g., by greying outthe attribute), thereby preventing the user from filtering down to zeroresults. The user may also opt-in for certain attributes, e.g., filterfor data objects having the certain attributes. Also, the user canopt-out of certain attributes, e.g., filter for data objects not havingcertain attributes.

At data flow action 7, the system 800 provides filtered search results.At data flow action 8, the user system 810 updates the graphical indiciaand/or search results to reflect the number of resources according tothe one or more search criteria/attributes.

In some embodiments, the user system 810 may perform data flow actions5-7, instead of the system 800.

Any of the data flow actions performed by the system 800 may be based onuser input, may be automated, or may be based on a combination of userinput and automation.

Saving and Sharing Searches for Resources and Related Information

FIG. 9 is a data flow diagram illustrative of the interaction betweenthe various components of a search system configured to search resourcesand related information using a saved or shared search, according to oneembodiment. The search system 900 and corresponding components of FIG. 9may be similar to or the same as the system 700, 800 and similarly namedcomponents of FIGS. 7 and 8. The search system 900 may includeadditional or different components, depending on the embodiment. Certaindetails relating to the search system 900 are explained above. Somedetails relating to systems such as 700, 800, and 900 that may beassociated with the implementations of FIGS. 3A-9 are explained below,e.g., in connection with FIGS. 11-13.

At data flow action 1, the search system 900 receives search criteriafor identifying people, transactions, resources and/or relatedinformation (e.g., documents, information, entities, and/or otherobjects). Data flow action 1 may be similar to data flow action 1 ofFIGS. 7 and 8. At data flow action 2, the search system 900 searchesproperties of resource data objects and/or properties of other objectsassociated with the resource data objects based on the search criteria.Data flow action 2 may be similar to data flow action 2 of FIG. 7.

At data flow action 3, the search system 900 provides search resultsmeeting the search criteria and may include unique IDs of data objects.The search results can include unique IDs of resource data objectsand/or unique IDs of related document, event, entity, or other dataobjects. The user system 910 may generate a user interface to displaythe results based on the unique IDs in the search results. In order toreduce the amount of state information stored at the system 900 (e.g.,web server), the search system 900 and the user system 910 may send andreceive the IDs of the relevant data objects, and corresponding detailscan be obtained in subsequent requests. In certain embodiments, theinitial search results may include information to be displayed in asearch window or pane. In some cases, the user system 910 can firstreceive a list of attributes associated with the IDs in the initialsearch results and then request the number of data objects having eachattribute in subsequent requests. Or the user system 910 may requestboth the list of attributes associated with the IDs and the number ofdata objects having each attribute after receiving the initial searchresults.

At data flow action 4, the system 900 receives request(s) for dataassociated with one or more unique IDs. If the user system 910 needsdetails for particular ID(s), the user system 910 can send one or morerequest(s) to the system 900 for the details. The system 900 can returnthe appropriate information, at 970, to the user system 910, and theuser system 910 can use the details in generating the user interface. Inone example, if the user selects a particular resource, the user system910 requests the details for the selected resource to the system 900,and the system 900 returns the details.

At data flow action 5, the user system 910 generates a user interfacebased on the received data. As explained above, the user system 910 cancompute and generate the user interface on the fly based on the searchresults. The user may filter the initial search results by selecting orexcluding attributes from user interface search functionality. Forinstance, the user system 910 may only receive identifiers (IDs)associated with the data objects and generate the user interface on thefly based on the IDs. The user system 910 may request furtherinformation used for generating the user interface (e.g., details forparticular IDs) from the search system 900 as needed. The user system910 can request the system 900 for updated search results. The usersystem 910 can also request the system 900 for the updated count for theattributes in order to compute the search results, including graphicalindicia. When any changes or updates occur within the user interfacethat triggers an update to the search, the user system 910 or the system900 can determine what other data within the user interface should beupdated. In certain embodiments, the user system 910 or the system 900determines the dependencies between different parts of an applicationand figures out the order of changes as well as the minimum amount ofchanges that should be made to update (e.g., avoid repeating same orsimilar operations, etc.).

Using the IDs of data objects in the search results can reduce theamount of data that is stored on the system 900 for a particular search.For example, the web server can only store the IDs and obtain furtherinformation from the data sources 920 as needed. For example, inresponse to an initial search the search system 900 may obtain resultsas a list of matching object IDs. Then the matching object IDs may beused by the search system to obtain information needed to renderinformation such as graphical indicia, keywords tab, etc. Thisinformation may then be provided to the user system 910 for rendering.When the user provides an input, e.g., clicking a graphical indiciacheckbox, the search system 900 may then filter to the subset of objectIDs still matching from the original search, and recompute all the UIelements (e.g., GUI indicia, etc.). In this manner, the system 900 canprovide scalability since the web server does not need to store a lot ofinformation for a search, and in certain implementations may maintain aninitial list of matching object ids configured to be further filteredvery efficiently, and may thereby be able to handle a large number ofconcurrent search requests without crashing.

At data flow action 6, the user system 910 saves the search includingthe search criteria. For example, a link to the search is created on theDesktop of the user's computer. The user may also share the search, forexample, by email or through a link. When the user saves or shares thesearch, the system 900 may create a unique ID for the search, create apermanent link (e.g., permalink) to access the search, and save relevantinformation (e.g., state information) in the data sources 920. Thesystem 900 may also save information specific to the user, such as thestarred resources. When the search is accessed at a later time by theuser or another user, the system 900 can return results that meet thesearch criteria at that time. Therefore, the users can view theup-to-date search results for the same search criteria. In someembodiments, the user may not make changes to a shared search, but maycreate or share a new search based on the shared search. The system 900can create a new unique ID for the new search and save the informationin the data sources 920. The new search may also be shared. Users maymake changes to their own saved searches.

At data flow action 7, the user system 910 reruns the search. When theuser accesses the link to the saved or shared search, the user system910 requests the search to the system 900, and the system 900 canprovide the up-to-date results for the search, as explained above.

Any of the data flow actions performed by the system 900 may be based onuser input, may be automated, or may be based on a combination of userinput and automation.

FIG. 10 illustrates a flowchart for searching resources and/or relatedinformation (e.g., people, transactions, documents, information,entities, and/or other objects) using data structures, according tocertain embodiments. The process 1000 may be implemented by one or moresystems described with respect to FIGS. 7-9. For illustrative purposes,the process 1000 is explained below in connection with the system 700 inFIG. 7. Certain details relating to the process 1000 are also explainedin more detail elsewhere herein. Depending on the embodiment, theprocess 1000 may include fewer or additional blocks, and the blocks maybe performed in an order that is different than illustrated.

At block 1001, the system 1000 receives search criteria for identifyingdata associated with transactions and/or related information (e.g.,people, transaction data, documents, information, entities and/or otherobjects). The search criteria may relate to the people, transactiondata, resources, documents, information, entities, or other objects. Forexample, the search criteria may include one or more of the searchcriteria, parameters and/or selections set forth above in connectionwith FIGS. 3A-6F. Some of the search criteria relating to the resourcesmay be based on the properties of other data objects associated with theresources. The information, transaction data, resources, documents,entities, and other objects may be represented as respective dataobjects. Such elements may also be associated with each other.

At block 1002, the system 700 automatically identifies subsets of theresources and/or related information (e.g., transaction data, people,documents, information, entities, and/or other objects) that meet thesearch criteria. The identified resources may meet the search criteriaor may be associated with the identified documents, events, entities, orother objects that meet the search criteria. The identification of thesubsets of the search results can be based on one or more of: propertiesof the transactions, properties of the resources, properties of thedocuments, properties of the information, properties of the entities, orproperties of other data objects associated with the resources. Similarto the identified resources, such elements can meet the search criteriaor can be associated with the identified resources that meet the searchcriteria.

At block 1003, the system 700 may generate a user interface configuredto display the search results and/or identified resources and attributesassociated with the search results and/or identified resources. Theattributes can correspond to some or all of the properties of theidentified resources. In some embodiments, at least some of theattributes can correspond to the properties of the other data objectsassociated with the resources. The user interface can display anaggregate summary relating to the identified transaction data, resourcesand documents, information, entities, and other objects associated withthe identified resources. Graphical indicia, such as interactivegraphical indicia, may be displayed in the user interface for eachattribute. The graphical indicia can reflect the number of theidentified resources having the attribute.

In certain embodiments, the user interface includes a first pane fordisplaying the identified resources or parameters and a second pane fordisplaying information associated with one or more selected items of theidentified resources or parameters. If one or more resources of theidentified resources or parameters are selected in the first pane, oneor more of transaction data, documents, information, entities, or otherobjects associated with the one or more selected resources may bedisplayed in the second pane. For example, the one or more oftransaction data, documents, information, entities, or other objectsdisplayed in the second pane can meet the search criteria.

At block 1004, the system 700 receives selection of one or moreattributes. At block 1005, the system 700 filters the identifiedresources to a subset that meets the one or more attributes.

At block 1006, the system 700 updates the user interface to display thesubset that meets the one or more attributes. For example, updating theuser interface may include updating the graphical indicia of theattributes to reflect the number of resources having respectiveattribute in the subset that meets the one or more attributes. In someembodiments, the system 700 receives exclusion of second one or moreattributes, or an indication of the exclusion. The system 700 filtersthe identified resources to a second subset that does not meet thesecond one or more attributes. The system 700 updates the user interfaceto display the second subset. The system 700 also updates the graphicalindicia of the attributes to reflect the number of resources havingrespective attribute in the second subset.

In certain embodiments, the user system 710 performs all or some ofblocks 1001-1007, instead of the system 700. For example, as describedin connection with FIGS. 8-9, the user system 710 generates the userinterface, filters the identified resources to the subset that meets theone or more attributes, updates the user interface, updates thegraphical indicia of the attributes, etc.

Object Centric Data Model

To provide a framework for the discussion of specific systems andmethods described herein, an example database system 1110 using anontology 1105 will now be described. This description is provided forthe purpose of providing an example and is not intended to limit thetechniques to the example data model, the example database system, orthe example database system's use of an ontology to representinformation.

In one embodiment, a body of data is conceptually structured accordingto an object-centric data model represented by ontology 1105. Theconceptual data model is independent of any particular database used fordurably storing one or more database(s) 1109 based on the ontology 1105.For example, each object of the conceptual data model may correspond toone or more rows in a relational database or an entry in LightweightDirectory Access Protocol (LDAP) database, or any combination of one ormore databases.

FIG. 11 illustrates an object-centric conceptual data model according toan embodiment. An ontology 1105, as noted above, may include storedinformation providing a data model for storage of data in the database1109. The ontology 1105 may be defined by one or more object types,which may each be associated with one or more property types. At thehighest level of abstraction, data object 1101 is a container forinformation representing things in the world. For example, data object1101 can represent an entity such as a person, a place, an organization,a market instrument, or other noun. Data object 1101 can represent anevent that happens at a point in time or for a duration. Data object1101 can represent a document or other unstructured data source such astransaction data, information regarding people, entities and/or events,documents, or the like. Each data object 1101 is associated with aunique identifier that uniquely identifies the data object within thedatabase system.

Different types of data objects may have different property types. Forexample, a “Person” data object might have an “Eye Color” property typeand an “Event” data object might have a “Date” property type. Eachproperty 1103 as represented by data in the database system 1110 mayhave a property type defined by the ontology 1105 used by the database1105.

Objects may be instantiated in the database 1109 in accordance with thecorresponding object definition for the particular object in theontology 1105. For example, a specific monetary payment (e.g., an objectof type “event”) of US$30.00 (e.g., a property of type “currency”)taking place on Mar. 27, 2016 (e.g., a property of type “date”) may bestored in the database 1109 as an event object with associated currencyand date properties as defined within the ontology 1105.

The data objects defined in the ontology 1105 may support propertymultiplicity. In particular, a data object 1101 may be allowed to havemore than one property 1103 of the same property type. For example, a“Person” data object might have multiple “Address” properties ormultiple “Name” properties.

Each link 1102 represents a connection between two data objects 1101. Inone embodiment, the connection may be through a relationship, an event,or through matching properties. Further, a relationship connection maybe asymmetrical or symmetrical. For example, “Person” data object A maybe connected to “Person” data object B by a “Child Of” relationship(where “Person” data object B has an asymmetric “Parent Of” relationshipto “Person” data object A), a “Kin Of” symmetric relationship to“Person” data object C, and an asymmetric “Member Of” relationship to“Organization” data object X. The type of relationship between two dataobjects may vary depending on the types of the data objects. Forexample, “Person” data object A may have an “Appears In” relationshipwith “Document” data object Y or have a “Participate In” relationshipwith “Event” data object E. As an example of an event connection, two“Person” data objects may be connected by an “Airline Flight” dataobject representing a particular airline flight if they traveledtogether on that flight, or by a “Transaction” data object representinga particular transaction if they both participated in that transaction.In one embodiment, when two data objects are connected by an event, theyare also connected by relationships, in which each data object has aspecific relationship to the event, such as, for example, an “AppearsIn” relationship.

As an example of a matching properties connection, two “Person” dataobjects representing a brother and a sister, may both have an “Address”property that indicates where they live. If the brother and the sisterlive in the same home, then their “Address” properties likely containsimilar, if not identical property values. In one embodiment, a linkbetween two data objects may be established based on similar or matchingproperties (e.g., property types and/or property values) of the dataobjects. These are just some examples of the types of connections thatmay be represented by a link and other types of connections may berepresented; embodiments are not limited to any particular types ofconnections between data objects. For example, a document might containreferences to two different objects. For example, a document may containa reference to a payment (one object), and a person (a second object). Alink between these two objects may represent a connection between thesetwo entities through their co-occurrence within the same document.

Each data object 1101 can have multiple links with another data object1101 to form a link set 1104. For example, two “Person” data objectsrepresenting a husband and a wife could be linked through a “Spouse Of”relationship, a matching “Address” property, and one or more matching“Event” properties (e.g., a wedding). Each link 1102 as represented bydata in a database may have a link type defined by the database ontologyused by the database.

FIG. 12 is a block diagram illustrating exemplary components and datathat may be used in identifying and storing data according to anontology. In this example, the ontology may be configured, and data inthe data model populated, by a system of parsers and ontologyconfiguration tools. In the embodiment of FIG. 12, input data 1200 isprovided to parser 1202. The input data may comprise data from one ormore sources. For example, an institution may have one or more databaseswith information on transactions data, people, and other information.The databases may contain a variety of related information andattributes about each type of data, such as a “date” for a transaction,an address for a person, and an amount of money or currency that changedhands. The parser 1202 is able to read a variety of source input datatypes and determine which type of data it is reading.

In accordance with the discussion above, the example ontology 1205comprises stored information providing the data model of data stored indatabase 1209, and the ontology is defined by one or more object types1210, one or more property types 1216, and one or more link types 1230.Based on information determined by the parser 1202 or other mapping ofsource input information to object type, one or more data objects 1201may be instantiated in the database 1209 based on respective determinedobject types 1210, and each of the objects 1201 has one or moreproperties 1203 that are instantiated based on property types 1216. Twodata objects 1201 may be connected by one or more links 1202 that may beinstantiated based on link types 1230. The property types 1216 each maycomprise one or more data types 1218, such as a string, number, etc.Property types 1216 may be instantiated based on a base property type1220. For example, a base property type 1220 may be “Locations” and aproperty type 1216 may be “Home.”

In an embodiment, a user of the system uses an object type editor 1224to create and/or modify the object types 1210 and define attributes ofthe object types. In an embodiment, a user of the system uses a propertytype editor 1226 to create and/or modify the property types 1216 anddefine attributes of the property types. In an embodiment, a user of thesystem uses link type editor 1228 to create the link types 1230.Alternatively, other programs, processes, or programmatic controls maybe used to create link types and property types and define attributes,and using editors is not required.

In an embodiment, creating a property type 1216 using the property typeeditor 1226 involves defining at least one parser definition using aparser editor 1222. A parser definition comprises metadata that informsparser 1202 how to parse input data 1200 to determine whether values inthe input data can be assigned to the property type 1216 that isassociated with the parser definition. In an embodiment, each parserdefinition may comprise a regular expression parser 1204A or a codemodule parser 1204B. In other embodiments, other kinds of parserdefinitions may be provided using scripts or other programmaticelements. Once defined, both a regular expression parser 1204A and acode module parser 1204B can provide input to parser 1202 to controlparsing of input data 1200.

Using the data types defined in the ontology, input data 1200 may beparsed by the parser 1202 determine which object type 1210 shouldreceive data from a record created from the input data, and whichproperty types 1216 should be assigned to data from individual fieldvalues in the input data. Based on the object-property mapping 1201, theparser 1202 selects one of the parser definitions that is associatedwith a property type in the input data. The parser parses an input datafield using the selected parser definition, resulting in creating new ormodified data 1203. The new or modified data 1203 is added to thedatabase 1209 according to ontology 1205 by storing values of the new ormodified data in a property of the specified property type. As a result,input data 1200 having varying format or syntax can be created indatabase 1209. The ontology 1205 may be modified at any time usingobject type editor 1224, property type editor 1226, and link type editor1228, or under program control without human use of an editor. Parsereditor 1222 enables creating multiple parser definitions that cansuccessfully parse input data 1200 having varying format or syntax anddetermine which property types should be used to transform input data1200 into new or modified input data 1203.

Implementation Mechanisms

According to one embodiment, the techniques described herein areimplemented by one or more special-purpose computing devices. Thespecial-purpose computing devices may be hard-wired to perform thetechniques, or may include circuitry or digital electronic devices suchas one or more application-specific integrated circuits (ASICs) or fieldprogrammable gate arrays (FPGAs) that are persistently programmed toperform the techniques, or may include one or more hardware processorsprogrammed to perform the techniques pursuant to program instructions infirmware, memory, other storage, or a combination. Such special-purposecomputing devices may also combine custom hard-wired logic, ASICs, orFPGAs with custom programming to accomplish the techniques. Thespecial-purpose computing devices may be desktop computer systems,server computer systems, portable computer systems, handheld devices,networking devices or any other device or combination of devices thatincorporate hard-wired and/or program logic to implement the techniques.

Computing device(s) are generally controlled and coordinated byoperating system software, such as iOS, Android, Chrome OS, Windows XP,Windows Vista, Windows 7, Windows 8, Windows Server, Windows CE, Unix,Linux, SunOS, Solaris, iOS, Blackberry OS, VxWorks, or other compatibleoperating systems. In other embodiments, the computing device may becontrolled by a proprietary operating system. Conventional operatingsystems control and schedule computer processes for execution, performmemory management, provide file system, networking, I/O services, andprovide a user interface functionality, such as a graphical userinterface (“GUI”), among other things.

For example, FIG. 13 shows a block diagram that illustrates a computersystem 1300 upon which an embodiment may be implemented. For example,the computing system 1300 may comprise a system for searching forresources and related documents using data structures. Other computingsystems discussed herein may include any portion of the circuitry and/orfunctionality discussed with reference to system 1300. For instance, thesystem 700, 800, and/or 900 can each include some or all of thecomponents and/or functionality of the system 1300. The system 700, 800,and/or 900 may also each include some or all of the components and/orfunctionality of components (or systems) described 11-12 (e.g., thedatabase system 1210).

Computer system 1300 includes a bus 1302 or other communicationmechanism for communicating information, and a hardware processor, ormultiple processors, 1304 coupled with bus 1302 for processinginformation. Hardware processor(s) 1304 may be, for example, one or moregeneral purpose microprocessors.

Computer system 1300 also includes a main memory 1306, such as a randomaccess memory (RAM), cache and/or other dynamic storage devices, coupledto bus 1302 for storing information and instructions to be executed byprocessor 1304. Main memory 1306 also may be used for storing temporaryvariables or other intermediate information during execution ofinstructions to be executed by processor 1304. Such instructions, whenstored in storage media accessible to processor 1304, render computersystem 1300 into a special-purpose machine that is customized to performthe operations specified in the instructions.

Computer system 1300 further includes a read only memory (ROM) 1208 orother static storage device coupled to bus 1302 for storing staticinformation and instructions for processor 1304. A storage device 1310,such as a magnetic disk, optical disk, or USB thumb drive (Flash drive),etc., is provided and coupled to bus 1302 for storing information andinstructions.

Computer system 1300 may be coupled via bus 1302 to a display 1312, suchas a cathode ray tube (CRT) or LCD display (or touch screen), fordisplaying information to a computer user. An input device 1314,including alphanumeric and other keys, is coupled to bus 1302 forcommunicating information and command selections to processor 1304.Another type of user input device is cursor control 1316, such as amouse, a trackball, or cursor direction keys for communicating directioninformation and command selections to processor 1304 and for controllingcursor movement on display 1312. This input device typically has twodegrees of freedom in two axes, a first axis (e.g., x) and a second axis(e.g., y), that allows the device to specify positions in a plane. Insome embodiments, the same direction information and command selectionsas cursor control may be implemented via receiving touches on a touchscreen without a cursor.

Computing system 1300 may include a user interface module to implement aGUI that may be stored in a mass storage device as executable softwarecodes that are executed by the computing device(s). This and othermodules may include, by way of example, components, such as softwarecomponents, object-oriented software components, class components andtask components, processes, functions, attributes, procedures,subroutines, segments of program code, drivers, firmware, microcode,circuitry, data, databases, data structures, tables, arrays, andvariables.

In general, the word “module,” as used herein, refers to logic embodiedin hardware or firmware, or to a collection of software instructions,possibly having entry and exit points, written in a programminglanguage, such as, for example, Java, Lua, C or C++. A software modulemay be compiled and linked into an executable program, installed in adynamic link library, or may be written in an interpreted programminglanguage such as, for example, BASIC, Perl, or Python. It will beappreciated that software modules may be callable from other modules orfrom themselves, and/or may be invoked in response to detected events orinterrupts. Software modules configured for execution on computingdevices may be provided on a computer readable medium, such as a compactdisc, digital video disc, flash drive, magnetic disc, or any othertangible medium, or as a digital download (and may be originally storedin a compressed or installable format that requires installation,decompression or decryption prior to execution). Such software code maybe stored, partially or fully, on a memory device of the executingcomputing device, for execution by the computing device. Softwareinstructions may be embedded in firmware, such as an EPROM. It will befurther appreciated that hardware modules may be comprised of connectedlogic units, such as gates and flip-flops, and/or may be comprised ofprogrammable units, such as programmable gate arrays or processors. Themodules or computing device functionality described herein arepreferably implemented as software modules, but may be represented inhardware or firmware. Generally, the modules described herein refer tological modules that may be combined with other modules or divided intosub-modules despite their physical organization or storage

Computer system 1300 may implement the techniques described herein usingcustomized hard-wired logic, one or more ASICs or FPGAs, firmware and/orprogram logic which in combination with the computer system causes orprograms computer system 1300 to be a special-purpose machine. Accordingto one embodiment, the techniques herein are performed by computersystem 1300 in response to processor(s) 1304 executing one or moresequences of one or more instructions contained in main memory 1306.Such instructions may be read into main memory 1306 from another storagemedium, such as storage device 1310. Execution of the sequences ofinstructions contained in main memory 1306 causes processor(s) 1304 toperform the process steps described herein. In alternative embodiments,hard-wired circuitry may be used in place of or in combination withsoftware instructions.

The term “non-transitory media,” and similar terms, as used hereinrefers to any media that store data and/or instructions that cause amachine to operate in a specific fashion. Such non-transitory media maycomprise non-volatile media and/or volatile media. Non-volatile mediaincludes, for example, optical or magnetic disks, such as storage device1310. Volatile media includes dynamic memory, such as main memory 1306.Common forms of non-transitory media include, for example, a floppydisk, a flexible disk, hard disk, solid state drive, magnetic tape, orany other magnetic data storage medium, a CD-ROM, any other optical datastorage medium, any physical medium with patterns of holes, a RAM, aPROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip orcartridge, and networked versions of the same.

Non-transitory media is distinct from but may be used in conjunctionwith transmission media. Transmission media participates in transferringinformation between non-transitory media. For example, transmissionmedia includes coaxial cables, copper wire and fiber optics, includingthe wires that comprise bus 1302. Transmission media can also take theform of acoustic or light waves, such as those generated duringradio-wave and infra-red data communications.

Various forms of media may be involved in carrying one or more sequencesof one or more instructions to processor 1304 for execution. Forexample, the instructions may initially be carried on a magnetic disk orsolid state drive of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to computer system 1300 canreceive the data on the telephone line and use an infra-red transmitterto convert the data to an infra-red signal. An infra-red detector canreceive the data carried in the infra-red signal and appropriatecircuitry can place the data on bus 1302. Bus 1302 carries the data tomain memory 1306, from which processor 1304 retrieves and executes theinstructions. The instructions received by main memory 1306 mayoptionally be stored on storage device 1310 either before or afterexecution by processor 1304.

Computer system 1300 also includes a communication interface 1318coupled to bus 1302. Communication interface 1318 provides a two-waydata communication coupling to a network link 1320 that is connected toa local network 1322. For example, communication interface 1318 may bean integrated services digital network (ISDN) card, cable modem,satellite modem, or a modem to provide a data communication connectionto a corresponding type of telephone line. As another example,communication interface 1318 may be a local area network (LAN) card toprovide a data communication connection to a compatible LAN (or WANcomponent to communicate with a WAN). Wireless links may also beimplemented. In any such implementation, communication interface 1318sends and receives electrical, electromagnetic or optical signals thatcarry digital data streams representing various types of information.

Network link 1320 typically provides data communication through one ormore networks to other data devices. For example, network link 1320 mayprovide a connection through local network 1322 to a host computer 1324or to data equipment operated by an Internet Service Provider (ISP)1326. ISP 1326 in turn provides data communication services through theworld wide packet data communication network now commonly referred to asthe “Internet” 1328. Local network 1322 and Internet 1328 both useelectrical, electromagnetic or optical signals that carry digital datastreams. The signals through the various networks and the signals onnetwork link 1320 and through communication interface 1318, which carrythe digital data to and from computer system 1300, are example forms oftransmission media.

Computer system 1300 can send messages and receive data, includingprogram code, through the network(s), network link 1320 andcommunication interface 1318. In the Internet example, a server 1330might transmit a requested code for an application program throughInternet 1328, ISP 1326, local network 1322 and communication interface1318.

The received code may be executed by processor 1304 as it is received,and/or stored in storage device 1310, or other non-volatile storage forlater execution.

Each of the processes, methods, and algorithms described in thepreceding sections may be embodied in, and fully or partially automatedby, code modules executed by one or more computer systems or computerprocessors comprising computer hardware. The processes and algorithmsmay be implemented partially or wholly in application-specificcircuitry.

The various features and processes described above may be usedindependently of one another, or may be combined in various ways. Allpossible combinations and subcombinations are intended to fall withinthe scope of this disclosure. In addition, certain method or processblocks may be omitted in some implementations. The methods and processesdescribed herein are also not limited to any particular sequence, andthe blocks or states relating thereto can be performed in othersequences that are appropriate. For example, described blocks or statesmay be performed in an order other than that specifically disclosed, ormultiple blocks or states may be combined in a single block or state.The example blocks or states may be performed in serial, in parallel, orin some other manner. Blocks or states may be added to or removed fromthe disclosed example embodiments. The example systems and componentsdescribed herein may be configured differently than described. Forexample, elements may be added to, removed from, or rearranged comparedto the disclosed example embodiments.

Conditional language, such as, among others, “can,” “could,” “might,” or“may,” unless specifically stated otherwise, or otherwise understoodwithin the context as used, is generally intended to convey that certainembodiments include, while other embodiments do not include, certainfeatures, elements and/or steps. Thus, such conditional language is notgenerally intended to imply that features, elements and/or steps are inany way required for one or more embodiments or that one or moreembodiments necessarily include logic for deciding, with or without userinput or prompting, whether these features, elements and/or steps areincluded or are to be performed in any particular embodiment.

The term “a” as used herein should be given an inclusive rather thanexclusive interpretation. For example, unless specifically noted, theterm “a” should not be understood to mean “exactly one” or “one and onlyone”; instead, the term “a” means “one or more” or “at least one,”whether used in the claims or elsewhere in the specification andregardless of uses of quantifiers such as “at least one,” “one or more,”or “a plurality” elsewhere in the claims or specification.

The term “comprising” as used herein should be given an inclusive ratherthan exclusive interpretation. For example, a general purpose computercomprising one or more processors should not be interpreted as excludingother computer components, and may possibly include such components asmemory, input/output devices, and/or network interfaces, among others.

Any process descriptions, elements, or blocks in the flow diagramsdescribed herein and/or depicted in the attached figures should beunderstood as potentially representing modules, segments, or portions ofcode which include one or more executable instructions for implementingspecific logical functions or steps in the process. Alternateimplementations are included within the scope of the embodimentsdescribed herein in which elements or functions may be deleted, executedout of order from that shown or discussed, including substantiallyconcurrently or in reverse order, depending on the functionalityinvolved, as would be understood by those skilled in the art.

It should be emphasized that many variations and modifications may bemade to the above-described embodiments, the elements of which are to beunderstood as being among other acceptable examples. All suchmodifications and variations are intended to be included herein withinthe scope of this disclosure. The foregoing description details certainembodiments of the invention. It will be appreciated, however, that nomatter how detailed the foregoing appears in text, the invention can bepracticed in many ways. As is also stated above, it should be noted thatthe use of particular terminology when describing certain features oraspects of the invention should not be taken to imply that theterminology is being re-defined herein to be restricted to including anyspecific characteristics of the features or aspects of the inventionwith which that terminology is associated. The scope of the inventionshould therefore be construed in accordance with the appended claims andany equivalents thereof.

What is claimed is:
 1. A computer system comprising: one or morecomputer processors configured to execute software code to cause thecomputer system to: receive search criteria via a user interfacecomprising a custom object view, wherein: the search criteria areassociated with a first object type, and the custom object view isassociated with a second object type different from the first objecttype; search one or more databases based on the search criteria toidentify at least a first data object of the first object type;determine, based on a property value associated with the first dataobject, a second data object associated with the first data object,wherein the second data object is of the second object type; determineone or more additional data objects associated with the second dataobject; and update the user interface and the custom object view to bebased on the second data object of the second object type, wherein theupdated custom object view includes information indicative of the seconddata object, the first data object, and the one or more additional dataobjects associated with the second data object.
 2. The computer systemof claim 1, wherein the first object type and the second object type arerelated to one another in an object model.
 3. The computer system ofclaim 2, wherein the first data object and the second data object arerelated to one another hierarchically such that the second data objectis a root of the first data object in the one or more databases.
 4. Thecomputer system of claim 3, wherein the custom object view includes aselectable user interface element, the selection of which causes the oneor more computer processors to execute software code to cause thecomputer system to: update the user interface to display a graphicaldepiction of the first data object, the second data object, and the oneor more additional data objects as nodes in a graph, and connectionsbetween nodes based on relationships among the respective data objects.5. The computer system of claim 1, wherein the one or more computerprocessors are configured to execute software code to further cause thecomputer system to: determine second one or more additional data objectsassociated with the first data object; and update the user interface andthe custom object view to further include information indicative of thesecond one or more additional data objects associated with the firstdata object.
 6. A computer-implemented method comprising: by one or morecomputer processors configured to execute software code: receivingsearch criteria via a user interface comprising a custom object view,wherein: the search criteria are associated with a first object type,and the custom object view is associated with a second object typedifferent from the first object type; searching one or more databasesbased on the search criteria to identify at least a first data object ofthe first object type; determining, based on a property value associatedwith the first data object, a second data object associated with thefirst data object, wherein the second data object is of the secondobject type; determining one or more additional data objects associatedwith the second data object; and updating the user interface and thecustom object view to be based on the second data object of the secondobject type, wherein the updated custom object view includes informationindicative of the second data object, the first data object, and the oneor more additional data objects associated with the second data object.7. The computer-implemented method of claim 6, wherein the first objecttype and the second object type are related to one another in an objectmodel.
 8. The computer-implemented method of claim 7, wherein the firstdata object and the second data object are related to one anotherhierarchically such that the second data object is a root of the firstdata object in the one or more databases.
 9. The computer-implementedmethod of claim 8, wherein the custom object view includes a selectableuser interface element, and wherein the method further comprises: by theone or more computer processors configured to execute software code: inresponse to selection of the selectable user interface element, updatingthe user interface to display a graphical depiction of the first dataobject, the second data object, and the one or more additional dataobjects as nodes in a graph, and connections between nodes based onrelationships among the respective data objects.
 10. Thecomputer-implemented method of claim 6 further comprising: by the one ormore computer processors configured to execute software code:determining second one or more additional data objects associated withthe first data object; and updating the user interface and the customobject view to further include information indicative of the second oneor more additional data objects associated with the first data object.11. A computer program product comprising a computer readable storagemedium having program instructions embodied therewith, the programinstructions executable by one or more processors to cause the one ormore processors to: receive search criteria via a user interfacecomprising a custom object view, wherein: the search criteria areassociated with a first object type, and the custom object view isassociated with a second object type different from the first objecttype; search one or more databases based on the search criteria toidentify at least a first data object of the first object type;determine, based on a property value associated with the first dataobject, a second data object associated with the first data object,wherein the second data object is of the second object type; determineone or more additional data objects associated with the second dataobject; and update the user interface and the custom object view to bebased on the second data object of the second object type, wherein theupdated custom object view includes information indicative of the seconddata object, the first data object, and the one or more additional dataobjects associated with the second data object.
 12. The computer programproduct of claim 11, wherein the first object type and the second objecttype are related to one another in an object model.
 13. The computerprogram product of claim 12, wherein the first data object and thesecond data object are related to one another hierarchically such thatthe second data object is a root of the first data object in the one ormore databases.
 14. The computer program product of claim 13, whereinthe custom object view includes a selectable user interface element, theselection of which causes the one or more processors to: update the userinterface to display a graphical depiction of the first data object, thesecond data object, and the one or more additional data objects as nodesin a graph, and connections between nodes based on relationships amongthe respective data objects.
 15. The computer program product of claim11, wherein the program instructions are executable by one or moreprocessors to further cause the one or more processors to: determinesecond one or more additional data objects associated with the firstdata object; and update the user interface and the custom object view tofurther include information indicative of the second one or moreadditional data objects associated with the first data object.